|
|
|
|
Programming |
|
Programming languages and its classification |
|
History of C/C++ |
|
Console / Event-driven applications |
|
The program development process |
|
|
|
|
Programming applies to the discipline of
developing a program from a design specification. This includes: |
|
Elements of the subsystems (e.g., choices of
data structures such as linked list versus fixed arrays) |
|
Order of implementation of subsystems |
|
Algorithm choices (e.g. which variant of
quicksort to use based on the expected order of inputted data) |
|
Code implementation |
|
|
|
|
|
|
|
A program is instructions to the computer to do
something (for example, solve a problem). |
|
A programming language is a language for writing
programs. Both computers and humans must understand the language. |
|
Machine language |
|
Assembly language |
|
High-level language |
|
Human language |
|
|
|
|
|
|
Machine Language |
|
Computers only understand machine language.
Unfortunately, humans can not understand it. Example of machine language:
1100 1010 1111 1110 1011 1010 1011 1110 |
|
Assembly Language |
|
In this language, a programmer writes every
machine instruction, but in codes that are easier to understand. Assembly
language is no longer used very often. For example, |
|
Bipus |
|
Iload_2 |
|
|
|
|
|
|
|
|
High-level Language |
|
This is the type of programming langauge that is
used most of the time. It's possible for the machine to translate it to
machine instructions, and humans can also understand it with some practice.
There are thousands of programming languages, but only a few are popular,
for example Pascal, C, C++, Visual Basic, and Java. You will soon see many
examples of Java programs. |
|
Human Language |
|
The problem is that computers can not understand
human languages very well. Many researchers have been working hard for 40
years on this problem, but the progress is slow. Example: English, Spanish, French,… |
|
|
|
|
|
|
|
|
Procedural (Imperative) Languages |
|
Object-Oriented (OO) Languages |
|
|
|
|
Example: PASCAL, C, FORTRAN |
|
These languages support procedurally oriented
design. Emphasis is on the tasks that must be performed. Normally, one must
write a separate function or procedure for each data type for which the
task must be performed. |
|
Modular procedural design groups source code by
its function |
|
|
|
|
Source = Implementation |
|
|
|
Input.cc |
|
Output.cc |
|
Array.cc |
|
Etc.. |
|
|
|
|
|
Example: C++, Objective C, Java |
|
OO languages have features which directly
support software development using an object oriented paradigm. The
emphasis is on the classes (or categories) of data that are present, and
the software design is organized around the defined types. |
|
|
|
|
Source = Implementation |
|
|
|
Complex.cc |
|
String.cc |
|
Window.cc |
|
Etc.. |
|
|
|
|
|
UNIX developed c. 1969 – DEC PDP-7 Assembly
Language |
|
BCPL – a user friendly OS providing powerful
development tools developed from BCPL. Assembler tedious long and error
prone. |
|
A new language “B” a second attempt. C. 1970 |
|
A totally new language “C” a successor to “B”.
C. 1971 |
|
By 1973 UNIX OS almost totally written in “C” |
|
|
|
|
|
The C programming language was originally
developed by Dennis Ritchie in 1972. |
|
Two major dialects of C have been available
during the history : |
|
Traditional C |
|
ANSI C |
|
C++ is built on the base of C by Bjarne
Stroustrup in the early 1980’s. |
|
|
|
|
Small size |
|
Extensive use of function calls |
|
Loose typing – unlike PASCAL |
|
Structured language |
|
Low level (BitWise) programming readily
available |
|
Pointer implementation – extensive use of
pointers for memory, array, structures and functions |
|
|
|
|
An ANSI C compiler will accept programs written
in traditional C (but not vice versa) |
|
ANSI C compiler can catch certain common
programming errors in an ANSI C program that would not be caught in a
traditional C program. |
|
|
|
|
|
|
|
|
includes several improvements to C |
|
has many
new features designed to support object-oriented programming |
|
retains the basic features of ANSI C |
|
|
|
|
C++ offers enhancements of C in five directions: |
|
Operator and function overloading |
|
Information hiding |
|
Inheritance |
|
Polymorphism (virtual functions) |
|
Library building (templates, exceptions) |
|
|
|
|
It has high-level constructs. |
|
It can handle low-level activities. |
|
It produces efficient programs. |
|
It can be compiled on a variety of computer. |
|
|
|
|
Console applications |
|
Event-driven applications |
|
|
|
|
are programs written without a Graphical User
Interface (GUI). |
|
is run in a Windows console window. |
|
don’t require much user input and perform a
limited set of functions. |
|
|
|
The visual controls of the Visual Component
Library (VCL)normally used in Window programming are not used in console
applications. |
|
|
|
|
are programs written with a Graphical User
Interface (GUI). |
|
|
|
|
|
User centric programming. |
|
Program is not in charge. |
|
The flow of control is not fixed. |
|
User/system creates high level software events. |
|
Action button has been pressed ... |
|
Left mouse button has been released ... |
|
Window has been closed ... |
|
Scrollbar was adjusted ... |
|
Program processes events. |
|
Different design patterns exist of how system
creates events and program should handle the events. |
|
|
|
|
Development process is a set of rules which
define how a development project should generally be carried out. This may
include a description of what documents, design models and other artifacts
should be produced and in what order. |
|
|
|
|
|
First the program has to be designed. It can be
written on paper, or in designer’s head, but the designer should have a
clear idea of what he want to do before he start writing your program. |
|
|
|
|
Write the source program using an editor.
An editor is like a simple word processor. A source program contains
instructions in a programming language (eg, Java). |
|
Example editor: PFE (Programmer's File Editor) |
|
|
|
|
Translate (compile) the source program into an object
program.
An object program contains machine instructions. The program which
translates a source program into an object program is called a compiler. If
there are errors, go back to step 2 (or 1). Don't be surprised if you have
to go back and edit your program many times. |
|
Example compiler: javac (part of Sun's JDK (Java
Development Kit)) |
|
|
|
|
Run (execute) the object program. This step is
often called debugging. A bug is an error in the program. You debug a
program to remove the bugs in a program.
If there are errors, go back to step 2 (or 1). |
|
Example way to run applets: appletviewer |
|
|
|
|
Creating the source file FIRST.C |
|
Compiling FIRST.C to create FIRST.OBJ |
|
Linking FIRST.OBJ to create FIRST.EXE |
|
Executing FIRST.EXE to verify its performance |
|
|
|
|
|
|
C compiler A software program that examines a C
program for syntax errors and, if successful, creates an object (OBJ) file. |
|
Editor A program that allows you to create or change a file. |
|
Linker A software program that combines object
(OBJ) and library (LIB) files to create an executable program that has the
extension EXE. |
|
Object file A machine code file produced by
compilation of source code. |
|
|
|
|
Program A list of instructions for the computer
to perform. C programmers refer to these instructions as source code.
Programs are also known as software. |
|
Source Code The processing instructions that are
written in a given computer language and that collectively constitute a
source file. |
|
Source File
A text file that contains a program. C source files have the
extension C: filename.c |
|
Syntax Error An error that occurs when you
violate one of the rules of C, such as forgetting ‘;’. |
|